package com.cbg.archives.repository;

import com.cbg.archives.entity.EsArchives;
import com.shuyuwl.core.repository.DaoRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 档案分类表 repository
 *
 * @author wangjuzheng
 * @since 2019-10-16
 */
@Repository
public interface IEsArchivesRepository extends DaoRepository<EsArchives, Long> {

    /**
     * 获取未删除的分类信息
     *
     * @param status 状态
     * @return 分类信息
     */
    List<EsArchives> findByStatusOrderBySortAsc(Byte status);

    /**
     * 获取某一分类下的未删除的分类信息
     *
     * @param pid    父级分类id
     * @param status 状态
     * @return 分类信息
     */
    List<EsArchives> findByPidAndStatusOrderBySortAsc(Long pid, Byte status);

    /**
     * 查询分类详情
     *
     * @param id     分类id
     * @param status 启用状态
     * @return 分类详情
     */
    EsArchives findByIdAndStatusOrderBySortAsc(Long id, Byte status);

    /**
     * 获取父级id下最大的排序号
     *
     * @param pid    父级id
     * @param status 状态
     * @return 排序号
     */
    @Query("select MAX(sort) from EsArchives where pid=?1 and status =?2")
    Integer getMaxSort(Long pid, Byte status);

    /**
     * 查询父级分类下是否存在同名的分类信息
     *
     * @param categoryPid  分类父级id
     * @param categoryName 分类名称
     * @param status       状态
     * @return 分类信息
     */
    List<EsArchives> findByPidAndNameAndStatus(Long categoryPid, String categoryName, Byte status);
}
